package method.Reference;

public interface TestInterface {
    String test();

    // 接口默认方法
    default String defaultTest() {
        return "default";
    }

    // 接口静态方法
    static String staticTest() {
        return "static";
    }
}

interface OperationInterface {

    void operate(int a, int b);
}

class TestInterfaceMain {
    private String operate(int a, int b, TestInterface operation) {


        return operation.defaultTest() + operation.test();
    }

    /**
     * java 8 必须有一个抽象接口方法
     * <p>
     * 可以有 default默认方法
     * <p>
     * 可以有 静态方法
     *
     * @param args
     */
    public static void main(String[] args) {
        TestInterfaceMain main = new TestInterfaceMain();
        String operate = main.operate(1, 2, new TestInterface() {
            @Override
            public String test() {
                return "hello world";
            }
        });
        System.out.println("============main " + operate);
        String s = TestInterface.staticTest();
        System.out.println("========s " + s);

    }


}
